from qiniu import Auth, put_file, etag, put_data
import qiniu.config

# 需要填写你的 Access Key 和 Secret Key
access_key = '97CsGd0SutvSD2zbh6hziIM31zLO-tWhPCRYBQ59'
secret_key = 'GyBl0heH6lQINhLOOgcu11hT7SBwyafP-nzXJwWK'


def image_storage(image_data):
    # 构建鉴权对象
    q = Auth(access_key, secret_key)

    # 要上传的空间
    bucket_name = 'news-information123'

    # 上传后保存的文件名 如果不指定，名字由七牛云维护
    key = None

    # 生成上传 Token，可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)

    # 要上传文件的本地路径
    # localfile = './meinv.jpg'

    # 上传 put_data上传任意位置文件 可以非本地 但是 data必须是二进制
    ret, info = put_data(token, key, data=image_data)
    # 处理上传结果
    if info.status_code == 200:
        # print(info)
        # print(ret)
        return ret.get('key')  # 如果上传成功，返回图片名称
    else:
        return None


if __name__ == '__main__':
    with open('./timg.jpg', 'rb') as f:
        image_data = f.read()
    image_storage(image_data)
